package controle;

import java.util.List;

import modelo.bean.Alternativa;
import modelo.dao.GenericoDAO;
import modelo.dao.impl.AlternativaDAOImpl;

public class AlternativaControle {
	private Alternativa alternativa;
	private List<Alternativa> listaDeAlternativas;

	private AlternativaDAOImpl alternativaDAOImpl;
	private GenericoDAO genericoDAO;

	public AlternativaControle(Alternativa alternativa) {
		this.alternativa = alternativa;
		DAOdeAlternativa();
	}

	private void DAOdeAlternativa() {
		if (alternativa == null) {
			alternativa = new Alternativa();
		}
		if (alternativaDAOImpl == null) {
			alternativaDAOImpl = new AlternativaDAOImpl(alternativa);
		}
		genericoDAO = alternativaDAOImpl;
		genericoDAO.changeSeed(alternativa);
	}

	public boolean criar() {
		return genericoDAO.criar();
	}

	public Alternativa find(Long id) {
		alternativa =(Alternativa) genericoDAO.recuperar(id);
		return alternativa;
	}

	@SuppressWarnings("unchecked")
	public List<Alternativa> listarTodos() {
		return (List<Alternativa>) genericoDAO.listarTodos();
	}

	public boolean excluir(Long id) {
		alternativa = (Alternativa) genericoDAO.recuperar(id);
		return genericoDAO.deletar();
	}

	public boolean alterar(Alternativa a) {
		alternativa = a;
		return genericoDAO.editar();
	}

	public List<Alternativa> getListaDeAlternativas() {
		return listaDeAlternativas;
	}

	public void setListaDeAlternativas(List<Alternativa> listaDeAlternativas) {
		this.listaDeAlternativas = listaDeAlternativas;
	}

	public Alternativa getAlternativa() {
		return alternativa;
	}

	public void setAlternativa(Alternativa alternativa) {
		this.alternativa = alternativa;
	}

}
